![Auth0で自己管理証明書を使ったカスタムドメインを設定する(AWSのサービスを利用)](https://devio2023-media.developers.io/wp-content/uploads/2019/03/auth0-eyecatch.001.png)
Auth0で自己管理証明書を使ったカスタムドメインを設定する(AWSのサービスを利用)
Auth0では、テナントのドメインを、選択した1つのカスタムドメインにマッピングできます。 Auth0のドメインをリダイレクトしたり、Auth0のドメインを使用したりする代わりにカスタムドメインを使用することで、 ユーザーに一貫した体験を提供することができます。
カスタムドメインの設定には2種類あります。
- Auth0管理の証明書を使用してカスタムドメインを構成
- 自己管理証明書でカスタムドメインを構成
本記事では自己管理証明書でカスタムドメインを構成する方法をやっていこうと思います。
自己管理証明書でカスタムドメインを構成するには以下のことが必要になります。
- 認証局から証明書を購入または提供し、更新を自分で管理
- 証明書をインストールするリバースプロキシ(プロキシからのトラフィックが受け入れられる)
- カスタムドメインに複数のDNSレコードを設定
証明書は AWS Certificate Manager
, リバースプロキシは Amazon CloudFront
, DNSは Amazon Route 53
を使用していきます。
やってみる
ドメインの追加
Auth0のダッシュボードから Tenant Settings
に移動し、 Custom Domains
をクリックします。
Domain
に設定したいカスタムドメイン名を入力、Certificate Type
にSelf-Managed Certificates
を選択し、
Add Domain
ボタンをクリックします。
ドメイン所有権の確認
追加を行うと、カスタムドメインの設定画面に検証のためのTXTレコードの情報が表示されます。
表示されている内容をドメインのDNSレコードに設定していきます。
Amazon Route 53
のコンソールに移動し、以下の設定をします。
- タイプ:
TXT
- 値: Auth0のカスタムドメイン設定画面に表示されている
Value
の中身
作成ボタンを押してレコード作成は完了です。
Auth0のダッシュボードにもどり、カスタムドメイン設定画面でVerify
ボタンを押します。
Auth0からの確認が完了すると以下の画面が表示されます。
Origin Domain Name
, Origin Custom Headers
の情報は後の設定に使用するのでコピーして保存してください。
使えるようになると上記のような表示になります。
リバースプロキシの作成
Amazon CloudFront
を使って作成していきます。
CloudFrontの管理コンソールからwebのDistributionを作成します。
Origin Settingsで
- Origin Domain Name:
Auth0ダッシュボードから取得したOrigin Domain Nameの値
を指定 - Origin Protocol Policy:
HTTPS Only
- Origin Custom Headers:
Header Name
にcname-api-key
、Value
にAuth0でドメイン名の所有権を確認した直後に与えられたCNAME APIキーの値
を指定
Default Cache Behavior Settingsで、
- Viewer Protocol Policy:
Redirect HTTP to HTTPS
- Allowed HTTP Methods:
GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
- Cache Based on Selected Request Headers:
Whitelist
- Whitelist Headers:
User-Agent
を入力し、カスタムホワイトリストヘッダーを追加するには、[カスタムの追加] >>をクリックします。Authorization
、Origin
、Refererer
、およびAccept
ヘッダーについても同じことを行います - Forward Cookies:
All
- Query String Forwarding and Caching:
Forward all, cache based on all
Distribution Settingsで、
- Alternate Domain Names(CNAMEs): カスタムドメイン名を設定(Auth0ダッシュボードで構成したものと同じ)
- SSL Certificate: 米国東部(バージニア北部)リージョンのACMまたはIAMに保存されているカスタムドメインのSSL証明書に設定
設定後は、ページの一番下までスクロールして、Create Distribution
をクリックします。
作成されるまでは少し時間がかかります。
CNAMEレコードの追加
カスタムドメインのDNSに新しいCNAMEレコードを追加します。 前の手順で作成したTXTレコードは削除してしまって大丈夫です。
- Type:
CNAME
- 値:
DistributionのDomain Name
確認
全ての設定が終えたら、Auth0のダッシュボードにいき、カスタムドメインが機能しているか確認します。
TEST
ボタンを押して確認できます。成功すると上記画像のようにYour domain is configured correctly.
というメッセージが表示されます。
エラーメッセージが表示された場合はDNS,Cloudfrontの設定を見直します。
カスタムドメインを使用するAuth0機能にある機能でカスタムドメインを使用できますので確認していきましょう。
ユニバーサルログインを使用していると、デフォルトではAuth0のドメインにアクセスすることになりますが、 カスタムドメインを設定しておけばブランド面での統一にもなるので使用を検討していただけると嬉しいです。